using System;
using System.Collections.Generic;
using System.Data;
using System.Configuration;
using System.Web.UI;
using Anthem;
using BusinessRules;
using Common;
using DataAccess;

public partial class MetasListadoEje : PageBase
{
    #region Propiedades

    public string StrPlnId
    {
        get
        {
            if (ViewState["strPlnId"] != null)
                return ViewState["strPlnId"].ToString();
            else
                return "";
        }
        set { ViewState["strPlnId"] = value; }
    }

    public string IdentificadorMetId
    {
        get { return (ViewState["IdentificadorMetId"] == null ? string.Empty : ViewState["IdentificadorMetId"].ToString()); }
        set { ViewState["IdentificadorMetId"] = value; }
    }

    public string IdentificadorAccId
    {
        get { return (ViewState["IdentificadorAccId"] == null ? string.Empty : ViewState["IdentificadorAccId"].ToString()); }
        set { ViewState["IdentificadorAccId"] = value; }
    }

    public string IdentificadorSasId
    {
        get { return (ViewState["IdentificadorSasId"] == null ? string.Empty : ViewState["IdentificadorSasId"].ToString()); }
        set { ViewState["IdentificadorSasId"] = value; }
    }

    public string IdentificadorSacId
    {
        get { return (ViewState["IdentificadorSacId"] == null ? string.Empty : ViewState["IdentificadorSacId"].ToString()); }
        set { ViewState["IdentificadorSacId"] = value; }
    }
    

    private DataTable SigSigAccionMetaDataTable
    {

        get
        {

            DataTable objTable = null;
            if (Cache[SigAccionMetaData.SIG_ACCION_META_TABLE + Session.SessionID] != null)
                objTable = (DataTable)Cache[SigAccionMetaData.SIG_ACCION_META_TABLE + Session.SessionID];
            return objTable;
        }

        set
        {
            if (value != null)
            {
                Cache.Insert(SigAccionMetaData.SIG_ACCION_META_TABLE + Session.SessionID, value, null, DateTime.Now.AddMinutes(20), TimeSpan.Zero);
            }
        }
    }

    #endregion

    #region Page_Load

    protected void Page_Load(object sender, EventArgs e)
    {
        WccAcciones1.AddEnabledDuringCallBack = false;
        WccAcciones1.AddTextDuringCallBack = "Guardando... Por favor esperar!!!";
        WccAcciones1.UpdateEnabledDuringCallBack = false;
        WccAcciones1.UpdateTextDuringCallBack = "Guardando... Por favor espere!!!";

        lblMensaje.Visible = false;
        if (!Page.IsPostBack)
        {
            TraerContextItems();
            cargarCamposEncabezado();
            cargarAcciones();
        }
        lblMensaje.Visible = false;
        lblMensaje.AutoUpdateAfterCallBack = true;
        WccAcciones1.Permisos = Permisos;
        if (Manager.IsCallBack)
        {
            Manager.RegisterClientScriptBlock(typeof(Page), "reloj", "<script>muestraReloj2();</script>");
        }
        ////////////////////////////
        // cargar Usuarios de cache //
        ////////////////////////////
        if (SigSigAccionMetaDataTable != null)
        {
            if (SigSigAccionMetaDataTable.Rows.Count > 0)
            {
                gridMetasListado.DataSource = SigSigAccionMetaDataTable.DefaultView;
                gridMetasListado.DataBind();
                gridMetasListado.Settings.ShowFilterRow = true;
            }
            else
            {
                gridMetasListado.Settings.ShowFilterRow = false;
            }
        }
        
    }

    #endregion

    #region cargarCamposEncabezado

    private void cargarCamposEncabezado()
    {
        try
        {
            SigPlanAccion objSigPlanAccion = new SigPlanAccion(ConfigurationManager.AppSettings["Conn"]);
            SigPlanAccionData objSigPlanAccionData = objSigPlanAccion.ConsultarPnlId(Convert.ToDecimal(StrPlnId));
            if (objSigPlanAccionData != null)
            {
                DataRow fila = objSigPlanAccionData.Rows[0];
                lblDependencia.Text = fila[SigPlanAccionData.DEP_NOMBRE_FIELD].ToString();
                lblDescripcionRubro.Text = fila[SigPlanAccionData.PLN_NOMBRE_FIELD].ToString();
            }
            SigAccion objSigAccion = new SigAccion(ConfigurationManager.AppSettings["Conn"]);
            SigAccionData objSigAccionData = objSigAccion.ConsultarAccionAccID(IdentificadorAccId);
            //---------------------
            //Cargar datos Accion -
            //---------------------
            if (objSigAccionData != null)
            {
                DataRow filaAccion = objSigAccionData.Rows[0];
                lblAccion.Text = filaAccion[SigAccionData.ACC_DESCRIPCION_FIELD].ToString();

                decimal decValor = Convert.ToDecimal(filaAccion[SigAccionData.ACC_VALOR_FIELD].ToString());
                lblValorAccion.Text = decValor.ToString("C");

            }
        }
        catch (Exception ex)
        {

            lblMensaje.Visible = true;
            Utilidad.mostrarMensaje(Utilidad.TiposMensajes.Error, ex.Message, lblMensaje);
        }

    }

    #endregion

    #region cargarAcciones
    private void cargarAcciones()
    {

        BusinessRules.SigAccionMeta objSigAccionMeta = new BusinessRules.SigAccionMeta(ConfigurationManager.AppSettings["Conn"]);
        SigAccionMetaData objSigAccionMetaData = objSigAccionMeta.ConsultarAccionMetaTodos(Convert.ToDecimal(IdentificadorAccId));
        SigSigAccionMetaDataTable = objSigAccionMetaData;
        gridMetasListado.DataSource = objSigAccionMetaData;
        gridMetasListado.DataBind();

    }

    #endregion

    #region WccAcciones1_Add_OnClick

    protected void WccAcciones1_Add_OnClick(object sender, ImageClickEventArgs e)
    {
        crearContextItems();
        Server.Transfer("Metas.aspx?SSM_ID=20", true);
    }

    #endregion

    #region crearContextItems

    private void crearContextItems()
    {
        try
        {
            Context.Items["plnId"] = StrPlnId;
            Context.Items["IdentificadorSasId"] = IdentificadorSasId;
            Context.Items["IdentificadorSacId"] = IdentificadorSacId;
            Context.Items["IdentificadorAccId"] = IdentificadorAccId;
            Context.Items["IdentificadorMetId"] = IdentificadorMetId;
            
            
        }
        catch (Exception ex)
        {
            lblMensaje.Text = ex.ToString();
        }
    }

    #endregion

    #region TraerContextItems

    private void TraerContextItems()
    {
        
        
        
        if (Context.Items["plnId"] != null)
            StrPlnId = Context.Items["plnId"].ToString();

        if (Context.Items["IdentificadorSasId"] != null)
            IdentificadorSasId = Context.Items["IdentificadorSasId"].ToString();

        if (Context.Items["IdentificadorSacId"] != null)
            IdentificadorSacId = Context.Items["IdentificadorSacId"].ToString();

        if (Context.Items["IdentificadorAccId"] != null)
            IdentificadorAccId = Convert.ToString(Context.Items["IdentificadorAccId"]);
    }

    #endregion

    #region WccAcciones1_Delete_OnClick

    protected void WccAcciones1_Delete_OnClick(object sender, ImageClickEventArgs e)
    {
        lblMensaje.Visible = true;
        List<object> keyValues = gridMetasListado.GetSelectedFieldValues("PLN_ID");
        try
        {
            string[] strIDs = new string[30];
            int intCurrentItems = 0;
            foreach (object key in keyValues)
            {
                intCurrentItems++;
                strIDs[intCurrentItems] = key.ToString();

            }

            BusinessRules.SigPlanAccion objSigPlanAccion = new BusinessRules.SigPlanAccion(ConfigurationManager.AppSettings["Conn"]);

            if (objSigPlanAccion.EliminarRubrosContransacciones(strIDs) != 0)
            {
                lblMensaje.Visible = true;
                Utilidad.mostrarMensaje(Utilidad.TiposMensajes.Mensaje, Utilidad.TraerMensaje("gmsgEliminarRegistrosExitoso"), lblMensaje);
            }
            cargarAcciones();
            gridMetasListado.Selection.UnselectAll();
        }

        catch (Exception ex)
        {
            //throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorInsertar", this.GetType().FullName), ex);
            Utilidad.mostrarMensaje(Utilidad.TiposMensajes.Error, ex.Message, lblMensaje);

        }
    }

    #endregion

    #region WccAcciones1_Update_OnClick

    protected void WccAcciones1_Update_OnClick(object sender, ImageClickEventArgs e)
    {
        List<object> keyValues = gridMetasListado.GetSelectedFieldValues("MET_ID");


        foreach (object key in keyValues)
        {

            IdentificadorMetId = key.ToString();
        }
        crearContextItems();
        Server.Transfer("Metas.aspx?SSM_ID=19", true);
    }

    #endregion

    #region lnkModificaciones_Click

    protected void lnkModificaciones_Click(object sender, EventArgs e)
    {
        List<object> keyValues = gridMetasListado.GetSelectedFieldValues("MET_ID");


        foreach (object key in keyValues)
        {

            IdentificadorMetId = key.ToString();
        }
        crearContextItems();
        Server.Transfer("SitiosEjecucionListado.aspx?SSM_ID=19", true);
    }

    #endregion

    #region lnkRubro_Click

    protected void lnkRubro_Click(object sender, EventArgs e)
    {
        //List<object> keyValues = gridMetasListado.GetSelectedFieldValues("ACC_ID");


        //foreach (object key in keyValues)
        //{

        //    IdentificadorMetId = key.ToString();
        //}
        crearContextItems();
        Server.Transfer("PlanAccion.aspx?SSM_ID=19", true);
    }

    #endregion

    #region btnRegresar_Click

    protected void btnRegresar_Click(object sender, ImageClickEventArgs e)
    {
        crearContextItems();
        Server.Transfer("PlanAccionListadoEje.aspx?SSM_ID=20", true);
    }

    #endregion

    protected void lblDescripcionRubro_Click(object sender, EventArgs e)
    {
        crearContextItems();
        Server.Transfer("EjecucionPresupuestalPlanAccionEje.aspx?SSM_ID=20", true);
    }
    protected void lblAccion_Click(object sender, EventArgs e)
    {
        crearContextItems();
        Server.Transfer("PlanAccionListadoEje.aspx?SSM_ID=20", true);
    }
    protected void lnkAvancesAccion_Click(object sender, EventArgs e)
    {
        List<object> keyValues = gridMetasListado.GetSelectedFieldValues("MET_ID");


        foreach (object key in keyValues)
        {

            IdentificadorMetId = key.ToString();
        }
       

        crearContextItems();
        Server.Transfer("SigPlanProgramaAvanceListado.aspx?SSM_ID=20", true);
    }
    protected void btnXlsExport_Click(object sender, EventArgs e)
    {
        gridExport.WriteXlsToResponse();
    }
}
